/*
 * @Author: adolphus adolphus520@163.com
 * @Date: 2022-12-21 18:16:08
 * @LastEditors: 姚杰鸿
 * @LastEditTime: 2025-07-03 18:03:07
 * @Description: file content
 */
import axios from "axios";
import { store, changeToken } from "@/store";

const service = axios.create({
  // axios请求基础URL
  // 由于本项目使用mock + vite-plugin-mock启动的mock服务，默认使用的端口号与页面一致
  baseURL: "/srv",
  timeout: 5000,
});

// 添加请求拦截器
service.interceptors.request.use(
  (config) => {
    // 在发送请求之前做些什么
    const token = store.getters.getToken;
    console.log("在发送请求之前触发", token); //示例代码
    if (token) {
      config.headers.Authorization = "Bearer " + token;
    }
    // 在发送请求之前做些什么
    //config.data = qs.stringify(config.data)
    //debugger
    return config;
  },
  function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);

// 添加响应拦截器
service.interceptors.response.use(
  function (response) {
    // 对响应数据做点什么
    console.log("响应数据成功触发"); //示例代码
    if (response.headers.authorization) {
      store.commit(changeToken, response.headers.authorization);
    }
    if (
      response.data &&
      response.data.code != 200 &&
      response.data.code != 201
    ) {
      let msg = response.data.msg;
      if (!msg) msg = "request error";
      return Promise.reject(msg);
    }
    return response; //返回相应的数据
  },
  function (error) {
    console.log(error);
    if (!error.response) {
      console.log("Please check your internet connection.");
    } else if (error.response.data && error.response.data.code === 401) {
      window.location.href = "/login.html";
    }
    // 对响应错误做点什么
    return Promise.reject(error);
  }
);

export default service;
